import { get } from '@/service/request'

export function getVehicleList(data: VehicleListQuery) {
  return get<VehicleData>('lxdd/carMonitor/showCarMonitorData.html', data)
}

// 获取车辆信息
export function getCarInfo(data: CarInfoQuery) {
  return get<CarInfoData>('lxdd/carMonitor/carInformation.html', data)
}

// 获取客户列表
export function getCustomerList(data: VehicleListQuery) {
  return get<CustomerData[]>('lxdd/carMonitor/showCustomerData.html', data)
}

export interface VehicleListQuery {
  mixingStationId?: string
  mixingStationName?: string
  mixingStationNumber?: string
}

/** 车辆列表对象 */
export interface VehicleData {
  /** 空闲车辆数 */
  freeCarCount?: number
  /** 在途车辆数 */
  inTransitCarCount?: number
  /** 搅拌站ID */
  mixingStationId?: string
  /** 搅拌站名称 */
  mixingStationName?: string
  /** 搅拌站编号 */
  mixingStationNumber?: string
  /** 排队车辆数 */
  waitInLineCarCount?: number
  /** 车辆信息 */
  ownCars?: VehicleInfo[]
}

export interface VehicleInfo {
  /** 车辆ID */
  carId?: string
  /** 车牌号 */
  carNumber?: string
  /** 车辆状态[1-在途, 2-排队, 3-空闲] */
  carStatus?: 1 | 2 | 3
  /** 设备ID */
  deviceId?: string
  /** 纬度 */
  lat?: string
  /** 经度 */
  lng?: string
  /** 经纬度 */
  lnglat?: number[]
  /** 搅拌车号 */
  mixingTruckNumber?: string
  /** 方向角 */
  directionAngle?: string
  /** 定位时间 */
  gpsTime?: string
  /** 在线状态 0 离线 1在线 */
  online?: 0 | 1
}

export interface CarInfoQuery {
  mixingStationNumber: string
  deviceId: string
  carNumber: string
}

/** 车辆信息对象 */
export interface CarInfoData {
  /** 车辆ID */
  carId?: string
  /** 实际方量 */
  actualVolume?: string
  /** 定位地址 */
  address?: string
  /** 车牌号 */
  carNumber?: string
  /** 车辆ID */
  deviceId?: string
  /** 车辆状态[1-在途, 2-排队, 3-空闲] */
  carStatus?: 1 | 2 | 3
  /** 坐标 */
  coordinate?: string
  /** 客户名称 */
  customerName?: string
  /** 开始送货时间 */
  deliveryStartTime?: string
  /** 定位时间 */
  positionTime?: string
  /** 车速 */
  speed?: number
  /** 运单ID */
  wayBillId?: string
  /** 运单号 */
  wayBillNumber?: string
  /** 搅拌车号 */
  mixingTruckNumber?: string
  /** 方向角 */
  directionAngle?: string
}

/** 客户列表对象 */
export interface CustomerData {
  /** 客户ID */
  customerId?: string
  /** 客户名称 */
  customerName?: string
  /** 项目名称 */
  projectName?: string
  /** 围栏数据 */
  railDataList?: RailData[]
  /** 复选框选中状态 */
  checked?: boolean
  /** 客户选中状态 */
  selected?: boolean
}

/** 客户围栏列表对象 */
export interface RailData {
  /** 围栏地址 */
  address?: string
  /** 标注点纬度 */
  lat?: number
  /** 标注点经度 */
  lng?: number
  /** 半径 */
  radius?: string
  /** 围栏数据 */
  railData?: string
  /** 围栏类型[0-自定义, 1-行政区域] */
  railType?: 0 | 1
  /** 围栏形状[0-圆形, 1-矩形, 2-多边形] */
  shapeType?: 0 | 1 | 2
  /** 客户ID */
  customerId?: string
  /** 客户名称 */
  customerName?: string
  /** 项目名称 */
  projectName?: string
}
